<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>暑期实习 - 小车制造之旅</title>
    <style>
        :root {
            --primary: rgba(42, 92, 139, 0.9);
            --secondary: #F4A261;
            --accent: #7EC3B0;
            --text-color: #333;
            --light-blue: #e0f2fe;
            --darker-blue: #bae6ff;
            --border-color: rgba(0, 0, 0, 0.1);
            --box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }
        body {
            font-family: "Segoe UI", system-ui;
            line-height: 1.6;
            margin: 0;
            padding: 0;
            min-height: 100vh;
            position: relative;
            background: var(--light-blue);
        }
        /* 顶部图片区域 */
        .hero-section {
            position: relative;
            height: 400px;
            overflow: hidden;
        }
        .hero-image {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .hero-overlay {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 100px;
            background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--primary));
        }
        /* 渐变背景 */
        .gradient-bg {
            background: linear-gradient(
                to bottom, 
                var(--primary) 0%, 
                var(--primary) 30%, 
                var(--light-blue) 70%, 
                var(--darker-blue) 100%
            );
            padding-top: 2rem;
            padding-bottom: 150px; /* 为底部栏留出更多空间 */
        }
        /* 通用板块样式 */
        .section {
            background: rgba(255, 255, 255, 0.95);
            border-radius: 10px;
            border: 1px solid var(--border-color);
            box-shadow: var(--box-shadow);
            margin-bottom: 2rem;
            overflow: hidden;
        }
        /* 顶部导航栏 */
        .header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 1rem 3rem;
            background: rgba(255, 255, 255, 0.9);
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
            position: relative;
            z-index: 10;
        }
        .school-info {
            display: flex;
            align-items: center;
        }
        .school-logo {
            width: 50px;
            height: 50px;
            background: var(--primary);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            margin-right: 1rem;
            font-size: 24px;
            font-weight: bold;
        }
        .school-name {
            font-weight: bold;
            color: var(--text-color);
        }
        .internship-info {
            font-size: 0.9rem;
            color: #666;
            margin-top: 0.3rem;
        }
        .nav-links {
            display: flex;
            gap: 1.5rem;
        }
        .nav-link {
            color: var(--text-color);
            text-decoration: none;
            font-weight: 500;
            transition: color 0.3s;
        }
        .nav-link:hover {
            color: var(--secondary);
        }
        /* 主要内容区域 */
        .main-content {
            padding: 0 3rem 3rem;
        }
        .page-title {
            text-align: center;
            margin-bottom: 2rem;
            color: white;
            font-size: 2.5rem;
            position: relative;
            padding-bottom: 1rem;
        }
        .page-title::after {
            content: "";
            position: absolute;
            bottom: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 100px;
            height: 3px;
            background: var(--accent);
        }
        .subtitle {
            text-align: center;
            color: white;
            margin-bottom: 3rem;
            font-size: 1.2rem;
        }
        .teams-container {
            display: flex;
            flex-wrap: wrap;
            gap: 2rem;
            justify-content: center;
            max-width: 1400px;
            margin: 0 auto;
        }
        .team-group {
            padding: 1.5rem;
            width: 300px;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .team-group:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);
        }
        .group-title {
            color: var(--primary);
            border-bottom: 2px solid var(--accent);
            padding-bottom: 0.5rem;
            margin-bottom: 1.5rem;
            text-align: center;
            font-size: 1.3rem;
            position: relative;
        }
        .group-title::after {
            content: "";
            position: absolute;
            bottom: -2px;
            left: 0;
            right: 0;
            height: 2px;
            background: linear-gradient(90deg, transparent, var(--accent), transparent);
        }
        .member-card {
            padding: 1rem 0;
            border-bottom: 1px solid var(--border-color);
            cursor: pointer;
            transition: background 0.3s;
            display: flex;
            align-items: center;
        }
        .member-card:last-child {
            border-bottom: none;
        }
        .member-card:hover {
            background: rgba(245, 245, 245, 0.7);
        }
        .member-icon {
            width: 24px;
            height: 24px;
            margin-right: 1rem;
            display: inline-block;
        }
        .member-name {
            font-weight: bold;
            color: var(--text-color);
            margin-bottom: 0.3rem;
            font-size: 1.1rem;
        }
        .member-role {
            color: var(--secondary);
            font-size: 0.9rem;
            margin-bottom: 0.3rem;
        }
        .member-major {
            color: var(--accent);
            font-size: 0.85rem;
            font-style: italic;
        }
        
        /* 日期日志按钮 */
        .date-log-btn {
            margin-top: 0.5rem;
            padding: 0.3rem 0.8rem;
            background: var(--light-blue);
            color: var(--primary);
            border-radius: 4px;
            text-align: center;
            cursor: pointer;
            transition: all 0.2s;
            font-size: 0.9rem;
            display: inline-block;
            margin-right: 0.5rem;
            margin-bottom: 0.5rem;
        }
        .date-log-btn:hover {
            background: var(--darker-blue);
        }
        
        /* 总体日志日期选择器 */
        .general-log-dates {
            background: rgba(255, 255, 255, 0.95);
            border-radius: 10px;
            border: 1px solid var(--border-color);
            box-shadow: var(--box-shadow);
            padding: 1.5rem;
            margin: 2rem auto;
            max-width: 1400px;
        }
        .general-log-dates h2 {
            color: var(--primary);
            margin-bottom: 1rem;
            text-align: center;
        }
        .date-selection {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
            justify-content: center;
        }
        
        /* 日志详情模态框 */
        .log-modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.7);
            z-index: 100;
            padding: 2rem;
            overflow-y: auto;
        }
        .log-content {
            background: white;
            max-width: 90%;
            width: 1200px;
            margin: 0 auto;
            padding: 2rem;
            border-radius: 10px;
            position: relative;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
            border: 1px solid var(--border-color);
        }
        
        /* 三栏布局样式 */
        .grouped-log-container {
            display: flex;
            gap: 1.5rem;
            margin-bottom: 1.5rem;
            min-height: 300px;
        }
        
        .group-log-section {
            flex: 1;
            padding: 1rem;
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            background-color: #f9f9f9;
            display: flex;
            flex-direction: column;
        }
        
        .group-log-title {
            color: var(--primary);
            border-bottom: 1px solid var(--accent);
            padding-bottom: 0.5rem;
            margin-bottom: 1rem;
            text-align: center;
        }
        
        .group-log-content {
            min-height: 200px;
            line-height: 1.8;
            flex: 1;
            overflow-y: auto; /* 为日志内容添加滑动 */
            padding-right: 0.5rem;
            scrollbar-width: thin;
            scrollbar-color: var(--accent) rgba(0,0,0,0.1);
        }
        
        /* 自定义滚动条样式 */
        .group-log-content::-webkit-scrollbar {
            width: 6px;
        }
        
        .group-log-content::-webkit-scrollbar-track {
            background: rgba(0,0,0,0.05);
            border-radius: 3px;
        }
        
        .group-log-content::-webkit-scrollbar-thumb {
            background-color: var(--accent);
            border-radius: 3px;
        }
        
        /* 图片展示区域 - 改为每行一张图片 */
        .group-log-images {
            display: flex;
            flex-direction: column; /* 垂直排列 */
            gap: 0.8rem;
            margin-top: 1rem;
            padding-top: 1rem;
            border-top: 1px solid #e0e0e0;
        }
        
        .group-log-image {
            width: 100%;
            height: 250px; /* 增加高度以更好展示单张图片 */
            object-fit: contain; /* 改为contain保持完整显示 */
            border-radius: 4px;
            transition: transform 0.3s;
            border: 1px solid var(--border-color);
            background-color: #f5f5f5; /* 添加背景色 */
        }
        
        .group-log-image:hover {
            transform: scale(1.02);
        }
        
        .log-body {
            font-size: 1.1rem;
            line-height: 1.8;
        }
        
        .close-btn {
            position: absolute;
            top: 1rem;
            right: 1rem;
            font-size: 1.5rem;
            cursor: pointer;
            color: #666;
            transition: color 0.3s;
        }
        
        .close-btn:hover {
            color: var(--text-color);
        }
        
        .log-date {
            color: var(--primary);
            font-weight: bold;
            margin-bottom: 0.5rem;
            font-size: 1.1rem;
        }
        
        .log-text {
            margin-bottom: 1rem;
            white-space: pre-wrap;
        }
        
        /* 隐藏上传区域 */
        .log-editor {
            display: none;
        }
        
        /* 底部栏 */
        .footer {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            background: var(--primary);
            color: white;
            padding: 1rem 3rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 0.9rem;
        }
        .footer-school {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }
        .footer-logo {
            width: 30px;
            height: 30px;
            background: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--primary);
            font-weight: bold;
        }
        .footer-internship {
            text-align: right;
        }
        .footer-subtitle {
            font-size: 0.8rem;
            color: rgba(255, 255, 255, 0.8);
            margin-top: 0.3rem;
        }
        
        /* 响应式设计 */
        @media (max-width: 1024px) {
            .grouped-log-container {
                flex-direction: column;
            }
        }
        
        @media (max-width: 768px) {
            .group-log-image {
                height: 180px;
            }
        }
        
        /* 分点内容样式 */
        .log-point {
            margin-bottom: 1rem;
        }
        .log-point::before {
            content: attr(data-point) ". ";
            font-weight: bold;
            color: var(--primary);
        }
    </style>
</head>
<body>
    <!-- 顶部图片区域 -->
    <div class="hero-section">
        <img src="https://images.unsplash.com/photo-1551434678-e076c223a692?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80" alt="人造小车" class="hero-image">
        <div class="hero-overlay"></div>
    </div>
    <!-- 渐变背景区域 -->
    <div class="gradient-bg">
        <header class="header section">
            <div class="school-info">
                <div class="school-logo">实习</div>
                <div>
                    <div class="school-name">西南交通大学</div>
                    <div class="internship-info">暑期实习项目</div>
                </div>
            </div>
            <nav class="nav-links">
                <a href="#" class="nav-link">首页</a>
                <a href="#" class="nav-link">项目介绍</a>
                <a href="#" class="nav-link">成员介绍</a>
                <a href="#" class="nav-link">联系我们</a>
            </nav>
        </header>
        <div class="main-content">
            <h1 class="page-title">暑期实习</h1>
            <h2 class="subtitle">小车制造之旅</h2>
            
            <div class="teams-container">
                <!-- 第一组 -->
                <div class="team-group section">
                    <h2 class="group-title">电控系统组</h2>
                    <div class="member-card" onclick="showMemberDetails('lipinxian')">
                        <img src="https://cdn-icons-png.flaticon.com/512/2913/2913162.png" alt="齿轮图标" class="member-icon">
                        <div>
                            <div class="member-name">李品贤</div>
                            <div class="member-role">电机控制算法开发</div>
                            <div class="member-major">智能制造工程</div>
                        </div>
                    </div>
                    
                    <div class="member-card" onclick="showMemberDetails('guolichen')">
                        <img src="https://cdn-icons-png.flaticon.com/512/2913/2913162.png" alt="齿轮图标" class="member-icon">
                        <div>
                            <div class="member-name">郭俐辰</div>
                            <div class="member-role">传感器集成与调试</div>
                            <div class="member-major">大功率半导体与工程</div>
                        </div>
                    </div>
                </div>
                <!-- 第二组 -->
                <div class="team-group section">
                    <h2 class="group-title">电池系统组</h2>
                    <div class="member-card" onclick="showMemberDetails('linminghao')">
                        <img src="https://cdn-icons-png.flaticon.com/512/2913/2913162.png" alt="齿轮图标" class="member-icon">
                        <div>
                            <div class="member-name">林铭浩</div>
                            <div class="member-role">电池管理系统开发</div>
                            <div class="member-major">大功率半导体与工程</div>
                        </div>
                    </div>
                    
                    <div class="member-card" onclick="showMemberDetails('lizhenghan')">
                        <img src="https://cdn-icons-png.flaticon.com/512/2913/2913162.png" alt="齿轮图标" class="member-icon">
                        <div>
                            <div class="member-name">李郑瀚</div>
                            <div class="member-role">能量管理系统优化</div>
                            <div class="member-major">大功率半导体与工程</div>
                        </div>
                    </div>
                </div>
                <!-- 第三组 -->
                <div class="team-group section">
                    <h2 class="group-title">电驱系统组</h2>
                    <div class="member-card" onclick="showMemberDetails('libo')">
                        <img src="https://cdn-icons-png.flaticon.com/512/2913/2913162.png" alt="齿轮图标" class="member-icon">
                        <div>
                            <div class="member-name">李博</div>
                            <div class="member-role">驱动系统集成</div>
                            <div class="member-major">大功率半导体与工程</div>
                        </div>
                    </div>
                </div>
            </div>
            
            <!-- 总体日志日期选择器 -->
            <div class="general-log-dates section">
                <h2>工作日志详情</h2>
                <div class="date-selection">
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-06')">7月6日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-07')">7月7日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-08')">7月8日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-09')">7月9日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-10')">7月10日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-11')">7月11日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-12')">7月12日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-13')">7月13日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-14')">7月14日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-15')">7月15日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-16')">7月16日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-17')">7月17日</div>
                    <div class="date-log-btn" onclick="showGeneralLog('2025-07-18')">7月18日</div>
                </div>
            </div>
        </div>
    </div>
    <!-- 成员详情模态框 -->
    <div id="member-modal" class="log-modal">
        <div class="log-content section">
            <span class="close-btn" onclick="closeMemberModal()">×</span>
            <h2 id="member-title">成员详情</h2>
            
            <div class="log-body" id="member-body">
                <!-- 成员详情内容将通过JavaScript动态加载 -->
            </div>
        </div>
    </div>
    <!-- 总体日志模态框 -->
    <div id="general-log-modal" class="log-modal">
        <div class="log-content section">
            <span class="close-btn" onclick="closeGeneralLogModal()">×</span>
            <h2 id="general-log-title">总体日志</h2>
            <div class="log-date-display" style="color: var(--primary); font-weight: bold; margin-bottom: 1rem;"></div>
            
            <!-- 三栏布局容器 -->
            <div class="grouped-log-container" id="general-log-body">
                <!-- 内容将通过JavaScript动态加载 -->
            </div>
        </div>
    </div>
    <!-- 底部栏 -->
    <div class="footer">
        <div class="footer-school">
            <div class="footer-logo">交大</div>
            <div>西南交通大学</div>
        </div>
        <div class="footer-internship">
            <div>暑期实习</div>
            <div class="footer-subtitle">载人小车制造之旅</div>
        </div>
    </div>
    <script>
        // 成员信息数据
        const memberInfo = {
            lipinxian: {
                name: "李品贤",
                role: "电机控制算法开发",
                major: "智能制造工程",
                description: "主要负责小车电机控制算法的开发与优化，在嵌入式系统开发方面有丰富经验。参与过多个智能控制项目，熟悉PID控制、模糊控制等算法。"
            },
            guolichen: {
                name: "郭俐辰",
                role: "传感器集成与调试",
                major: "大功率半导体与工程",
                description: "专注于各类传感器的选型、集成与调试工作，确保传感器数据的准确采集与处理。在信号调理、滤波算法等方面有深入研究。"
            },
            linminghao: {
                name: "林铭浩",
                role: "电池管理系统开发",
                major: "大功率半导体与工程",
                description: "负责小车电池管理系统的设计与实现，包括电池充电控制、电量估计、均衡管理等功能。熟悉各类电池特性与管理策略。"
            },
            lizhenghan: {
                name: "李郑瀚",
                role: "能量管理系统优化",
                major: "大功率半导体与工程",
                description: "致力于小车能量管理系统的优化工作，提高能源利用效率，延长电池续航时间。在电力电子技术、DC-DC转换等领域有扎实基础。"
            },
            libo: {
                name: "李博",
                role: "驱动系统集成",
                major: "大功率半导体与工程",
                description: "负责小车驱动系统的集成与调试，包括电机驱动电路设计、功率模块选型等工作。在电力传动控制方面有丰富实践经验。"
            }
        };
        
        // 按组别分类的日志数据（6号到12号）
        const generalLogs = {
            "2025-07-06": {
                electricControl: "为推进市场调研与网站建设工作，我们从成都犀浦校区前往峨眉校区。清晨启程，一路讨论着方案，满心期待。抵达后迅速投入实习，今日着重了解校区著名地点。电器馆内，先进设备与前沿科研成果令人大开眼界；院士楼周边环境清幽，学术氛围浓厚。熟悉这些地点，不仅为调研提供思路，也让后续实习因环境熟络而更便捷高效。 。",
                battery: "与沈院士的偶遇：在参观峨眉校区著名地点时，我们的运气好到爆棚。漫步校园间，竟与沈志云院士不期而遇。这如同一场梦幻般的邂逅，让大家惊喜万分。沈院士笑容和蔼，热情邀请我们走进院士楼内部。楼内的每一件陈设都独具意义。沈院士带着我们，缓缓讲述着照片和纪念物背后的故事。照片里有他投身科研的专注瞬间，纪念物则承载着无数奋斗岁月。我们仿佛跟随他的讲述穿越时空，深切感受到他宽广的胸怀与远大的志向。这次经历就像一盏明灯，为我们照亮前行的路，让我们对未来有了更遥远、更美好的畅想。 ",
                electricDrive: "收获与感悟：我们在当地进行了调研，针对青年，中年和老年等不同年龄阶段的人进行了采访提问，大部分人认为这里的交通还是非常便利，一部分则觉得由于校区太大，并且没有共享单车，且上下楼梯多，上课和赶时间的情况会有不便，希望能有改善这种情况的设施。我们在参观校区的时候也同样深有体会，因此将这次调研结果将作为我们宝贵的设计方向。总而言之，这次的参观和调研给我们带来了很多收获，我们也从中学到了很多。",
                images: {
                    electricControl: ["https://gitee.com/rustblossom/rust/raw/master/6%E5%8F%B7/7a9c86aec02fd526df830831102b885.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/6%E5%8F%B7/6.5.jpg"],
                    battery: ["https://gitee.com/rustblossom/rust/raw/master/6%E5%8F%B7/f22f748cab2d35342a750aa594812ce.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/6%E5%8F%B7/6.4.jpg"],
                    electricDrive: ["https://gitee.com/rustblossom/rust/raw/master/6%E5%8F%B7/6.2.jpg",
                                    "https://gitee.com/rustblossom/rust/raw/master/6%E5%8F%B7/66d9967eab27072d23720ec9310938b.jpg"]
                }
            },
            "2025-07-07": {
                electricControl: "1.上午，老师为我们进行了全面而细致的讲解，从项目的目标和要求讲起，明确指出了我们最终要达到的方向和成果标准。2.在讲解过程中，老师特别强调了制造卡丁车所需的各种器件、工具和材料，详细介绍了它们的特性和用途，比如不同类型的金属管材、塑料配件以及各类紧固件等。3.我们用arduino编写代码，利用esp32 lolin对部件进行测试，通过这次部件测试，我们不仅对卡丁车的制造过程有了更深入的认识，还激发出许多创新的想法和改进的思路。期待着明开始编写电机控制核心代码",
                battery: "1.在老师讲解结束后，我们前往指定地点领取材料。大家表现得既兴奋又认真，仔细核对清单上的每一件物品，确保数量和种类准确无误，同时互相帮助搬运一些体积较大或重量较重的材料。 回到教室后，我们立即开始对每个部件进行测试。虽然之前对卡丁车的结构有了初步了解，但实际操作中还是遇到了一些问题，比如部分零件的匹配精度不够、工具使用需要更多技巧等。2.收获与感悟：在测试过程中，我们充分发挥团队协作精神，互相交流经验，共同探讨解决方案。进行电池管理系统的硬件设计，完成了保护电路和充放电管理模块的原理图设计。",
                electricDrive: "学习了三电模块相关知识之后，我们开始用arduino编写代码，并且利用esp32 lolin对各个元器件进行测试与调试，同时对驱动系统电路原理图有了初步的设计，确定了电机驱动模块的型号和参数，之后进行电路的搭建和调试",
                images: {
                    electricControl: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/7.1.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/7.jpg"],
                    battery: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/7.2.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/7.1.png"],
                    electricDrive: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/7.3.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/5dc85d9e28d3f09c0a66b4c7e517202.jpg"]
                }
            },
            "2025-07-08": {
                electricControl: "进行了基于ESP32的几项测试。上午测试OLED显示屏，连接ESP32lolin后，成功显示了文本和图形，验证了oled显示屏的显示功能。下午进行了电位器电压的采样测试，读取了电压值并且可以实时显示，结果准确稳定。测试油门开关状态检测，程序能准确判断并显示开关状态",
                battery: "今天学习了新的焊接方式点焊，并且采用了点焊的焊接方式对6串的电池组进行焊接，还对电池组进行了封装。完成了能量管理系统的初步优化方案，设计了基于负载的动态供电策略。",
                electricDrive: "优化了PWM控制算法，学习了电芯参数的相关知识。通过网络检索系统，梳理了锂电池的电芯核心参数及应用逻辑。",
                images: {
                    electricControl: ["https://gitee.com/rustblossom/rust/raw/master/3b45b82ce491fa23d66eb009247d4ca.jpg"],
                    battery: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/64961b80a9a74747c77564991d49d79.jpg"],
                    electricDrive: ["https://gitee.com/rustblossom/rust/raw/master/1c960cd7ed7dd90e8e94b813c384b08.jpg"]
                }
            },
            "2025-07-09": {
                electricControl: "与电驱组进行联调，我们将电机运转程序与我们的程序联合起来，尝试用摇杆，电位器和油门共同控制电机，并通过OLED展示具体数据。我们遇到了不少困难如电机难以同时控制两个，但最终在我们共同努力下成功解决了问题。同时摇杆容易误触也通过询问ai建立了死区（即在某一个圆内xy值始终为0），从而问题得以解决。",
                battery: "制作了电池组保护壳。对电池组部分的电路进行了焊接：将ina219连接在电源正极与器件输入端，将开关连接在电路之中，并成功实现了应有的功能，电压在安全范围内。调整了3.3v稳压模块的输出在合适的工作电压内，与电控电驱组合作测试基本成功；编写了电压电流监测代码，使电机只能在锂电池安全工作范围内使用。",
                electricDrive: "与电控组协调，一起探讨了控制的原理，最终方案如下：用旋钮来决定最大速度（挡位），而遥感上下用来控制实际最大速度，用遥感左右来控制方向，油门不提供速度而提供加速度。转向则通过控制两个轮子速度差实现。",
                images: {
                    electricControl: ["https://gitee.com/rustblossom/rust/raw/master/b286718bf1ace41aa395c92be835c04.jpg",
                        "https://gitee.com/rustblossom/rust/raw/master/5dc85d9e28d3f09c0a66b4c7e517202.jpg"],
                    battery: ["https://gitee.com/rustblossom/rust/raw/master/8d40eb76d55559a4af709d120117bdf.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/72b4269317949456054c8b11616dba7.jpg"],
                    electricDrive: ["https://gitee.com/rustblossom/rust/raw/master/1c960cd7ed7dd90e8e94b813c384b08.jpg",
                                         "https://gitee.com/rustblossom/rust/raw/master/dc2a21da4ea418fc5213dccc73755a6.jpg"]
                }
            },
            "2025-07-10": {
                electricControl: "7.10电驱组的工作：1.	与电控组联结，实现了单电驱控制单电机，单电驱控制双电机，双电驱控制双电机2.	解决了昨天遗留的双电机不同步问题3.	完善了电机前进后退代码，防止抖动与误触4.	在双电驱控制双电机中加入了差速转向功能5.	完善了差速转向功能代码，防止误触与抖动6.有一次学习了嘉立创EDA，熟悉了基本的操作界面                                                                                                                出现的问题：1.	双电驱控制双电机，电机不同步2.	电机正转反转容易误触3.	无法实现单电驱控制双驱动的差速转向4.找不到一些元件                                                                                          解决办法：1.	改变连线方式，避免出现接触不良2.	代码添加感应范围，避免误触3.	改用双电驱控制双驱动，实现差速转向4.通过询问其他组获知如何替代",
                battery: "1. 上午:学习如何使用嘉立创放置元器件，更改封装，设计电路原理图，用PCB接线，呈现出直观的3D渲染图。                                                                                                                  2. 下午：将DC-DC降压模块的引脚与导线焊接完成，接入电路中，同时，在老师的指引下放弃错误的接线方式（在用24V电池的前提下直接通过降压模块连接有刷电机），初步构想电池电驱电控的完整电路原理",
                electricDrive: "1.	与电控组联结，实现了单电驱控制单电机，单电驱控制双电机，双电驱控制双电机  2.解决了昨天遗留的双电机不同步问题  3.完善了电机前进后退代码，防止抖动与误触  4.	在双电驱控制双电机中加入了差速转向功能  5.	完善了差速转向功能代码，防止误触与抖动  6.有一次学习了嘉立创EDA，熟悉了基本的操作界面                                                                                                                                      出现的问题：1.双电驱控制双电机，电机不同步 2.电机正转反转容易误触 3.无法实现单电驱控制双驱动的差速转向 4.找不到一些元件                                                                                              解决办法： 1.改变连线方式，避免出现接触不良 2.代码添加感应范围，避免误触 3.改用双电驱控制双驱动，实现差速转向  4.通过询问其他组获知如何替代",
                images: {
                    electricControl: ["https://gitee.com/rustblossom/rust/raw/master/80e612ad9ad10f332e5692617775643.png",
                                      "https://gitee.com/rustblossom/rust/raw/master/5dc85d9e28d3f09c0a66b4c7e517202.jpg"],
                    battery: ["https://gitee.com/rustblossom/rust/raw/master/72b4269317949456054c8b11616dba7.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/dc2a21da4ea418fc5213dccc73755a6.jpg"],
                    electricDrive: ["https://gitee.com/rustblossom/rust/raw/master/3b45b82ce491fa23d66eb009247d4ca.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/14/dc2a21da4ea418fc5213dccc73755a6.jpg"]
                }
            },
            "2025-07-11": {
                electricControl: "今天，我们小组围绕电车系统进行了可靠性分析。1.上午的讲座后，我们进行了功能图绘制和FMECA分析。任务A要求我们绘制电车系统的功能分解图，包括动力系统、控制系统等。任务B则基于功能图，选择1-2个关键模块完成FMECA分析表，涵盖失效模式、频率评分、严重性评分等。2.我们还学习了FTA故障树分析，选择了“用户误触导致系统异常操作”作为Top Event进行分析。通过这些任务，我们对电车系统的可靠性有了更深入的理解。",
                battery: "1.今日实习日志要求包括分析电车系统概况及目标模块，FMECA/FTA方法的关键发现，对系统优化和设计改进的建议，以及从中学到的系统设计安全意识。2.收获和感悟：我们还需要反思如何将这些方法应用到实际的系统设计中，以提高系统的安全性和可靠性。通过今天的学习和实践，我们不仅掌握了理论知识，还提升了实际操作能力。",
                electricDrive: "1.实习内容:今天上午主要学习了工程中的安全问题的分析与解决，认识到了如果系统评估与定量安全问题，下午则进行了龙芯开发版的使用和相关环境的配置和搭建2.缺点与不足:对于工程中如何科学系统地评估安全和风险问题还有待提高，并缺少对安全方面的重视。对于龙芯开发板环境的配置存在诸多问题，亟待解决3.收获与感悟:对于工程中的安全和风险不能轻视，必须重视。龙芯开发板的配置的基本思路在请教李君老师之后已经有了，有待进一步验证",
                images: {
                    electricControl: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/25216d8436864dca08f58138ffe4434.png",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/14/14.3.jpg"],
                    battery: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/cf4ccfbc5f678f8efe5b75ef6ed22c3.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/72b4269317949456054c8b11616dba7.jpg"],
                    electricDrive: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/28e9bcb4fbdedc8d54e39669ccf6209.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/4a805a79a29c433707c75851b0df209.jpg"]
                }
            },
            "2025-07-12": {
                electricControl: "电驱组、电控组和电池组共同协作进行整车 3D 建模与设计。下午的，电驱组完成了 PCB 绘制，电池组完成了开关四脚的连接，大家还一起参与了 3D 建模的讨论工作。最后李博同学在fusion上对小车的总体设计进行了实际的建模与细节的调整，并且加上了我们组的特色装饰，非常有巧思，大家都认为这个设计很好，很满意",
                battery: "今天顺利地完成了开关四脚的连接任务，同时对电池盒有了初步的设计，进行了基础的建模和设计，接着等待3D打印，还进一步完善了电池系统的硬件连接。",
                electricDrive: "1.实习内容:今天上午主要学习了工程中的安全问题的分析与解决，认识到了如果系统评估与定量安全问题，下午则进行了龙芯开发版的使用和相关环境的配置和搭建2.缺点与不足:对于工程中如何科学系统地评估安全和风险问题还有待提高，并缺少对安全方面的重视。对于龙芯开发板环境的配置存在诸多问题，亟待解决3.收获与感悟:对于工程中的安全和风险不能轻视，必须重视。龙芯开发板的配置的基本思路在请教李军老师之后已经有了，有待进一步验证",
                images: {
                    electricControl: ["https://gitee.com/rustblossom/rust/raw/master/80e612ad9ad10f332e5692617775643.png"],
                    battery: ["https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/12/0a5a0707dad6dbd9811d522c40a5321.jpg"],
                    electricDrive: ["https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/12/a09e4838333f3648a3a41957e76ee36.jpg"]
                }
            },
       "2025-07-13": {
                electricControl: "1.我们组派人到312汇报车架设计，设计审核顺利通过。随后，代表凭老师签字到1楼领取了所需的铝型材。2.锯好铝型材后，列出车架组装所需配件清单，领取组装所需配件。3.在我们组工位组装车架。",
                battery: "一早到工位，照例收拾干净桌面与地板之后，我们讨论能量管理系统的初步优化方案，并设计了基于负载的动态供电策略",
                electricDrive: "今天我们讨论并制作了PCB板的原理图，大家对元器件的布局和具体的布线进行了讨论，研究出合理且方便后续焊接的大小和布局方案，并提交了订单",
                images: {
                    electricControl: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/b51f01989e577f856e71811af8c74d2.png",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/12/a09e4838333f3648a3a41957e76ee36.jpg"],
                    battery: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/9b527a79085819af9f1f3159b122b3b.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/d196a3707edb056465df2f831f67259.jpg"],
                    electricDrive: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/26e2ce8292dc3f57d748f5b5927f13a.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/5f6cc45d32b6b68ee06eb2715007ace4.png"]
                }
            },
         "2025-07-14": {
                electricControl: "今天的实习任务是组装车架，这让我们深刻体会到了团队合作的重要性。我们组审查了设计方案里所需的装车配件，之后在老师的带领下去办公室领取了清单中的相关配件。在车架组装的过程中，每个步骤都需要我们团队成员之间的紧密配合。从整理工作台到领取材料，再到组装车架，每一步都离不开大家的共同努力。在车架组装的过程中，我们学到了如何将理论知识应用到实际操作中。",
                battery: "通过实际操作，我们对车架的结构和组装流程有了更深入的理解。同时，我们也意识到了细节的重要性，每一个小部件的安装都需要精确到位，否则可能会影响整个车架的稳定性和安全性。此外，我们还学习到了如何有效地沟通和协调。在组装过程中，我们需要不断地与队友交流，确保每个人都清楚自己的任务和进度。这种沟通不仅提高了工作效率，也增强了团队的凝聚力。",
                electricDrive: "收获和感悟：总的来说，今天的实习经历让我们每个人都收获颇丰。在这里，我们不仅学到了工科专业知识，还提升了自己的实践能力和团队协作能力。我们相信这些经验将对我们未来的学习和工作产生积极的影响。",
                images: {
                    electricControl: ["https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/14/14.1.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/14/14.2.jpg"],
                    battery: ["https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/14/14.5.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/14/44afddd39c236900643f4b88e36ca6d.jpg"],
                    electricDrive: ["https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/14/6248b54752926d0713307548c516432.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/14/14.4.jpg"]
                }
            },
            "2025-07-15": {
                electricControl: "1.我们组派1人到312汇报车架设计，设计审核顺利通过。随后，代表凭老师签字到1楼领取了所需的铝型材。2.锯好铝型材后，列出车架组装所需配件清单，领取组装所需配件。3.在我们组工位组装车架。",
                battery: "完成了能量管理系统的初步优化方案，设计了基于负载的动态供电策略",
                electricDrive: "今天我们商讨并制作了PCB板，并提交了订单",
                images: {
                    electricControl: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/b51f01989e577f856e71811af8c74d2.png",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/12/74d772e4009b0769f9f8072303cf107.jpg"],
                    battery: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/9b527a79085819af9f1f3159b122b3b.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/d196a3707edb056465df2f831f67259.jpg"],
                    electricDrive: ["https://gitee.com/rustblossom/rust/raw/master/%E5%9B%BE%E7%89%87/26e2ce8292dc3f57d748f5b5927f13a.jpg",
                    "https://gitee.com/rustblossom/rust/raw/master/14%E5%8F%B7/12/e7692b91c097651f0822912aedcd297d.png"]
                }
            }
        };      
        // 当前查看的日期
        let currentDate = null;
        
        // 显示成员详情
        function showMemberDetails(memberId) {
            const modal = document.getElementById('member-modal');
            const title = document.getElementById('member-title');
            const body = document.getElementById('member-body');
            
            body.innerHTML = '';
            title.textContent = memberInfo[memberId].name + ' - 成员详情';
            
            const infoDiv = document.createElement('div');
            infoDiv.className = 'member-info';
            
            const nameEl = document.createElement('h3');
            nameEl.textContent = memberInfo[memberId].name;
            nameEl.style.color = 'var(--primary)';
            
            const roleEl = document.createElement('p');
            roleEl.textContent = '角色: ' + memberInfo[memberId].role;
            roleEl.style.fontWeight = 'bold';
            
            const majorEl = document.createElement('p');
            majorEl.textContent = '专业: ' + memberInfo[memberId].major;
            
            const descEl = document.createElement('p');
            descEl.textContent = memberInfo[memberId].description;
            descEl.style.marginTop = '1rem';
            
            infoDiv.appendChild(nameEl);
            infoDiv.appendChild(roleEl);
            infoDiv.appendChild(majorEl);
            infoDiv.appendChild(descEl);
            
            body.appendChild(infoDiv);
            modal.style.display = 'block';
        }
        
        // 关闭成员详情模态框
        function closeMemberModal() {
            document.getElementById('member-modal').style.display = 'none';
        }
        
        // 显示总体日志 - 三栏布局
        function showGeneralLog(date) {
            const modal = document.getElementById('general-log-modal');
            const title = document.getElementById('general-log-title');
            const bodyContainer = document.getElementById('general-log-body');
            
            currentDate = date;
            bodyContainer.innerHTML = '';
            
            title.textContent = '每日工作记录';
            
            // 设置日期显示
            const dateObj = new Date(date);
            const dateDisplay = document.querySelector('.log-date-display');
            dateDisplay.textContent = `${dateObj.getFullYear()}年${dateObj.getMonth() + 1}月${dateObj.getDate()}日`;
            
            // 查找特定日期的日志
            const logEntry = generalLogs[date] || {
                electricControl: '暂无记录',
                battery: '暂无记录',
                electricDrive: '暂无记录',
                images: {
                    electricControl: [],
                    battery: [],
                    electricDrive: []
                }
            };
            
            // 创建三栏布局
            // 1. 电控系统组
            const ecSection = document.createElement('div');
            ecSection.className = 'group-log-section';
            
            const ecTitle = document.createElement('h3');
            ecTitle.className = 'group-log-title';
            ecTitle.textContent = '电控系统组';
            
            const ecContent = document.createElement('div');
            ecContent.className = 'group-log-content';
            ecContent.innerHTML = formatLogContent(logEntry.electricControl);
            
            const ecImages = document.createElement('div');
            ecImages.className = 'group-log-images';
            
            // 添加电控组图片 - 每行一张
            if (logEntry.images && logEntry.images.electricControl) {
                logEntry.images.electricControl.forEach(imgUrl => {
                    const img = document.createElement('img');
                    img.src = imgUrl;
                    img.className = 'group-log-image';
                    img.alt = '电控系统组工作图片';
                    ecImages.appendChild(img);
                });
            }
            
            ecSection.appendChild(ecTitle);
            ecSection.appendChild(ecContent);
            ecSection.appendChild(ecImages);
            
            // 2. 电池系统组
            const batterySection = document.createElement('div');
            batterySection.className = 'group-log-section';
            
            const batteryTitle = document.createElement('h3');
            batteryTitle.className = 'group-log-title';
            batteryTitle.textContent = '电池系统组';
            
            const batteryContent = document.createElement('div');
            batteryContent.className = 'group-log-content';
            batteryContent.innerHTML = formatLogContent(logEntry.battery);
            
            const batteryImages = document.createElement('div');
            batteryImages.className = 'group-log-images';
            
            // 添加电池组图片 - 每行一张
            if (logEntry.images && logEntry.images.battery) {
                logEntry.images.battery.forEach(imgUrl => {
                    const img = document.createElement('img');
                    img.src = imgUrl;
                    img.className = 'group-log-image';
                    img.alt = '电池系统组工作图片';
                    batteryImages.appendChild(img);
                });
            }
            
            batterySection.appendChild(batteryTitle);
            batterySection.appendChild(batteryContent);
            batterySection.appendChild(batteryImages);
            
            // 3. 电驱系统组
            const edSection = document.createElement('div');
            edSection.className = 'group-log-section';
            
            const edTitle = document.createElement('h3');
            edTitle.className = 'group-log-title';
            edTitle.textContent = '电驱系统组';
            
            const edContent = document.createElement('div');
            edContent.className = 'group-log-content';
            edContent.innerHTML = formatLogContent(logEntry.electricDrive);
            
            const edImages = document.createElement('div');
            edImages.className = 'group-log-images';
            
            // 添加电驱组图片 - 每行一张
            if (logEntry.images && logEntry.images.electricDrive) {
                logEntry.images.electricDrive.forEach(imgUrl => {
                    const img = document.createElement('img');
                    img.src = imgUrl;
                    img.className = 'group-log-image';
                    img.alt = '电驱系统组工作图片';
                    edImages.appendChild(img);
                });
            }
            
            edSection.appendChild(edTitle);
            edSection.appendChild(edContent);
            edSection.appendChild(edImages);
            
            // 添加所有三个组到容器
            bodyContainer.appendChild(ecSection);
            bodyContainer.appendChild(batterySection);
            bodyContainer.appendChild(edSection);
            
            // 显示模态框
            modal.style.display = 'block';
        }
        
        // 格式化日志内容，实现分点分行显示
        function formatLogContent(content) {
            if (!content) return '';
            
            // 处理包含数字序号的内容
            const pointRegex = /(\d+\.\s*)([^\d\n]+)/g;
            let formattedContent = content;
            
            // 替换所有数字序号段落
            formattedContent = formattedContent.replace(pointRegex, (match, point, text) => {
                // 提取点号后面的数字
                const pointNumber = point.trim().replace('.', '');
                // 创建格式化的点
                return `<div class="log-point" data-point="${pointNumber}">${text.trim()}</div>`;
            });
            
            // 处理换行符
            formattedContent = formattedContent.replace(/\n/g, '<br>');
            
            return formattedContent;
        }
        
        // 关闭成员详情模态框
        function closeMemberModal() {
            document.getElementById('member-modal').style.display = 'none';
        }
        
        // 关闭总体日志模态框
        function closeGeneralLogModal() {
            document.getElementById('general-log-modal').style.display = 'none';
        }
        
        // 初始化页面
        document.addEventListener('DOMContentLoaded', function() {
            // 可以添加页面初始化代码
        });
    </script>
</body>
</html>    